home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 35 / Amiga Format AFCD35 (Issue 119, Jan 1999).iso / -in_the_mag- / reader_requests / fredobbutils / bbsrc / amigados_pal.s next >
Text File  |  1998-11-06  |  3KB  |  152 lines

  1. ************* Bootblock spécial *****************
  2. * AmigaDOS PAL Window boot
  3.  
  4.     incdir    asm:/Include/
  5.     include    equ.s
  6.     include    exec/types.i
  7.     include    exec/libraries.i
  8.     include    intuition/intuition.i
  9. ;    include    graphics/text.i
  10. ;    include    graphics/gfx.i
  11. ;    include    graphics/rastport.i
  12.  
  13.     rsreset
  14. newvector rs.l    1
  15. ;intbase    rs.l    1
  16. VARSIZE    rs.w    0
  17.  
  18. ;DBUG=0
  19.  
  20. Start:
  21.     dc.b    "DOS",0
  22.     dc.l    0,$370
  23. Main:
  24.     movem.l    d0-a6,-(sp)
  25.     lea    -VARSIZE(sp),sp    ;on utilise la pile comme base des variables
  26.     move.l    sp,a5        ;VarBase en a5
  27.  
  28.     IFD    DBUG
  29.     move.l    4.w,a6
  30.     ENDC
  31.  
  32.     btst    #6,$bfe001
  33.     beq.s    fin
  34.  
  35.     move.l    #CODESIZE,d0
  36.     moveq    #1,d1
  37.     jsr    AllocMem(a6)
  38.     move.l    d0,newvector(a5)
  39.     beq.s    fin
  40.  
  41.     lea    intname(pc),a1
  42.     moveq    #0,d0
  43.     jsr    -552(a6)
  44.     move.l    d0,d7
  45.     beq.s    fin
  46.     move.l    d0,a1
  47.     move    #OpenWindowTagList,a0
  48.     cmp    #36,LIB_VERSION(a1)    ;OS 2.0+ ?
  49.     bge.s    .v
  50.     move    #OpenWindow,a0
  51. .v    lea    Vector(pc),a2
  52.     move    a0,(a2)
  53.     move.l    newvector(a5),d0
  54.     jsr    -420(a6)    ;SetFunction()
  55.     lea    OldVector(pc),a0
  56.     move.l    d0,(a0)
  57.  
  58.     lea    new.open(pc),a0
  59.     move.l    newvector(a5),a1
  60.     move    #CODESIZE,d0
  61. .cop    move.b    (a0)+,(a1)+
  62.     dbf    d0,.cop
  63.  
  64.     move.l    d7,a1
  65.     jsr    -414(a6)
  66. fin
  67.     lea    VARSIZE(sp),sp    ;restitue la pile
  68.     movem.l    (sp)+,d0-a6
  69.  
  70. Init:
  71.     lea    expansion.name(pc),a1
  72.     moveq    #37,d0
  73.     move.l    4.w,a6
  74.     jsr    -552(a6)
  75.     tst.l    d0
  76.     beq.b    .err
  77.     move.l    d0,a1
  78.     bset    #6,34(a1)
  79.     jsr    -414(a6)
  80. .err    lea    dos.name(pc),a1
  81.     jsr    -96(a6)
  82.     tst.l    d0
  83.     beq.b    .nodos
  84.     move.l    d0,a0
  85.     move.l    22(a0),a0
  86.     moveq    #0,d0
  87.     rts
  88. .nodos    moveq    #-1,d0
  89.     rts
  90.  
  91. new.open:
  92. ;    movem.l    a0/a1,-(sp)
  93. ;    move.l    nw_Title(a0),a0
  94. ;    lea    oldname(pc),a1
  95. ;    bsr.s    StrCmp
  96. ;    movem.l    (sp)+,a0/a1
  97. ;    tst.l    d0
  98. ;    bne.s    .jmp
  99.     move    #256,nw_Height(a0)
  100.     pea    newname(pc)
  101.     move.l    (sp)+,nw_Title(a0)
  102.  
  103.     movem.l    d0-a6,-(sp)
  104.     move    Vector(pc),a0
  105.     move.l    OldVector(pc),d0
  106.     move.l    a6,a1
  107.     move.l    4.w,a6
  108.     jsr    SetFunction(a6)
  109.     movem.l    (sp)+,d0-a6
  110. .jmp
  111.     dc.w    $4ef9    ;jmp
  112. OldVector:dc.l    0
  113. Vector:    dc.w 0
  114.  
  115. ;StrCmp:
  116. ;    movem.l    d1-d2/a0-a1,-(sp)
  117. ;    moveq    #0,d0
  118. ;.loop    move.b    (a0)+,d1
  119. ;    beq.s    .eos1
  120. ;    move.b    (a1)+,d2
  121. ;    beq.s    .sup
  122. ;    cmp.b    d2,d1
  123. ;    beq.s    .loop
  124. ;    bcs.s    .inf
  125. ;.sup    moveq    #1,d0
  126. ;    bra.s    .ret
  127. ;.eos1    tst.b    (a1)+
  128. ;    beq.s    .ret
  129. ;.inf    moveq    #-1,d0
  130. ;.ret    movem.l    (sp)+,d1-d2/a0-a1
  131. ;    rts
  132.  
  133. ;oldname:dc.b "AmigaDOS",0
  134. newname:dc.b "AmigaDOS (PAL Window boot 1.0 by F.BASSALER)",0
  135. CODESIZE=*-new.open
  136.  
  137. intname        dc.b    'intuition.library',0
  138. dos.name    dc.b    'dos.library',0
  139. expansion.name    dc.b    'expansion.library',0
  140.  
  141.  DC.B " AMIGADOS PAL WINDOW BOOT V1.0, "
  142.  DC.B "CODED BY FREDERIC BASSALER."
  143.  dc.b " THIS BOOTBLOCK FORCES THE INITIAL CLI "
  144.  DC.B "TO OPEN A PAL (256 PIXELS HEIGHT) WINDOW. "
  145.  DC.B "PRESS THE LEFTMOUSEBUTTON DURING BOOT TO CANCEL THIS. "
  146.  DC.B "IF YOU ARE INTERESTED IN CODING & SWAPPING BOOTPROGRAMS, "
  147.  DC.B "WRITE TO: FREDERIC BASSALER - LA SERRE - 19500 COLLONGES - "
  148.  DC.B "FRANCE.     "
  149.  
  150. End:
  151.     dcb.b    512,0
  152.